package site.addzero.network.call.tyc.entity.detail

/**
 * 天眼查企业详细信息数据实体类
 */
data class CompanyDetailData(
    /** 企业相关信息列表 */
    val abInfo: List<AbInfo>,
    /** 实收资本 */
    val actualCapital: String,
    /** 地址列表 */
    val addressList: List<Address>,
    /** 企业简称 */
    val alias: String,
    /** 核准时间 */
    val approvedTime: Long,
    /** 企业所属省份简称 */
    val base: String,
    /** 企业基本信息 */
    val baseInfo: String,
    /** 分支机构参保人数 */
    val branchSocialStaffNum: String,
    /** 经营范围 */
    val businessScope: String,
    /** 企业状态信息 */
    val businessStatusInfo: Any? = null,
    /** 企业资产信息 */
    val companyAssets: Any? = null,
    /** 企业业务组织类型 */
    val companyBizOrgType: String,
    /** 企业业务类型 */
    val companyBizType: Int,
    /** 统一社会信用代码 */
    val companyCreditCode: String,
    /** 企业类型 */
    val companyOrgType: String,
    /** 企业简介纯文本 */
    val companyProfilePlainText: String,
    /** 企业简介纯文本（用于复制） */
    val companyProfilePlainText4Copy: String,
    /** 企业简介富文本 */
    val companyProfileRichText: List<CompanyProfileRichText>,
    /** 企业业务类型名称 */
    val companyShowBizTypeName: String,
    /** 企业时间说明 */
    val companyTimeExplain: String,
    /** 企业时间标题 */
    val companyTimeTitle: String,
    /** 企业类型 */
    val companyType: Int,


    /** 企业复杂名称 */
    val complexName: String,
    /** 信用代码 */
    val creditCode: String,
    /** 邮箱 */
    val email: String,
    /** 邮箱详情列表 */
    val emailDetailList: List<EmailDetail>,
    /** 邮箱列表 */
    val emailList: List<String>,
    /** 英文名称来源 */
    val enNameSource: String,
    /** 企业规模信息 */
    val enterpriseScaleInfo: EnterpriseScaleInfo,
    /** 实体类型 */
    val entityType: Int,
    /** 股权结构图URL */
    val equityUrl: String,
    /** 成立时间 */
    val estiblishTime: Long,
    /** 成立时间标题名称 */
    val estiblishTimeTitleName: String,
    /** 额外信息 */
    val extraInfo: Any? = null,
    /** 经营开始时间 */
    val fromTime: Long,
    /** 企业ID */
    val id: Long,
    /** 行业信息 */
    val industry: Any? = null,
    /** 2017年行业分类 */
    val industry2017: String,
    /** 产业链列表 */
    val industryChainList: List<IndustryChain>,
    /** 行业信息详情 */
    val industryInfo: IndustryInfo,
    /** 国家标准行业三级代码 */
    val industryNationalStdLv3Code: String,
    /** 是否为分支机构 */
    val isBranch: Boolean,
    /** 是否已认领 */
    val isClaimed: Int,
    /** 法人信息 */
    val legalInfo: LegalInfo,
    /** 法人ID */
    val legalPersonId: Long,
    /** 法人姓名 */
    val legalPersonName: String,
    /** 法人PID */
    val legalPersonPid: String,
    /** 法人类型 */
    val legalPersonType: Int,
    /** 法人标题名称 */
    val legalTitleName: String,
    /** 链接 */
    val link: Int,
    /** 上市板块列表 */
    val listedPlateList: List<Any>,
    /** 上市状态类型 */
    val listedStatusType: Int,
    /** 高管上市状态类型 */
    val listedStatusTypeForSenior: Int,
    /** 企业logo */
    val logo: String,
    /** 企业名称 */
    val name: String,
    /** 新公司收入 */
    val newCompanyIncome: Any? = null,
    /** 新公司利润 */
    val newCompanyProfit: Any? = null,
    /** 营业收入信息 */
    val operatingIncomeInfo: Any? = null,
    /** 营业利润信息 */
    val operatingProfitInfo: Any? = null,
    /** 组织机构代码 */
    val orgNumber: String,
    /** 组织类型名称 */
    val orgTypeName: String,
    /** 原始百分制评分 */
    val originalPercentileScore: Int,
    /** 父级ID */
    val parentId: Any? = null,
    /** 百分制评分 */
    val percentileScore: Int,
    /** 电话列表 */
    val phoneList: List<String>,
    /** 电话号码 */
    val phoneNumber: String,
    /** 电话来源列表 */
    val phoneSourceList: List<PhoneSource>,
    /** 英文名称 */
    val property3: String,
    /** 注册资本 */
    val regCapital: String,
    /** 注册资本金额 */
    val regCapitalAmount: String,
    /** 注册资本金额单位 */
    val regCapitalAmountUnit: String,
    /** 注册资本金额（整数） */
    val regCapitalAmt: Int,
    /** 注册资本币种 */
    val regCapitalCurrency: String,
    /** 注册资本标签 */
    val regCapitalLabel: String,
    /** 登记机关 */
    val regInstitute: String,
    /** 注册地址 */
    val regLocation: String,
    /** 注册地址标题 */
    val regLocationTitle: String,
    /** 注册号 */
    val regNumber: String,
    /** 企业经营状态 */
    val regStatus: String,
    /** 注册标题名称 */
    val regTitleName: String,
    /** 相关产业链数量 */
    val relatedIndustryChainCount: Int,
    /** 安全类型 */
    val safetype: String,
    /** 科技信息 */
    val scienceTechnologyInfo: ScienceTechnologyInfo,
    /** 敏感实体类型 */
    val sensitiveEntityType: Int,
    /** 企业简称 */
    val shortname: String,
    /** 是否显示分支机构趋势图 */
    val showBranchTrendChart: Boolean,
    /** 是否显示减资公告数量 */
    val showCapitalReductionNoticeCount: Boolean,
    /** 是否显示趋势图 */
    val showTrendChart: Boolean,
    /** 社保参保人数 */
    val socialStaffNum: String,
    /** 员工数量信息 */
    val staffNumInfo: StaffNumInfo,
    /** 员工数量信息列表 */
    val staffNumInfoList: StaffNumInfoList,
    /** 近三年员工数量信息列表 */
    val staffNumInfoListThreeYear: List<StaffNumInfoThreeYear>,
    /** 员工规模范围 */
    val staffNumRange: String,
    /** 标签列表 */
    val tagList: List<Tag>,
    /** 标签列表V2 */
    val tagListV2: List<TagV2>,
    /** 标签列表V3 */
    val tagListV3: List<TagV3>,
    /** 标签 */
    val tags: String,
    /** 税务地址 */
    val taxAddress: String,
    /** 纳税人识别号 */
    val taxNumber: String,
    /** 税务电话 */
    val taxPhone: String,
    /** 税务资格 */
    val taxQualification: String,
    /** 企业类型 */
    val type: Int,
    /** 索引更新时间 */
    val updateTime4Index: Long,
    /** 更新时间 */
    val updateTimes: Long,
    /** 更新时间 */
    val updatetime: Long,
    /** 网站列表 */
    val websiteList: Any? = null,
    /** 微信公众号数量 */
    val wechatCount: Int,
    /** 分支机构参保年份 */
    val year4BranchSocialStaffNum: Int,
    /** 社保参保年份 */
    val year4SocialStaffNum: Int
) {

    fun parseIsMicroEnt(type: Int?): String? {
        val map = HashMap<Int?, String?>()
        map[0] = "不是"
        map[1] = "是"

        val s = map.get(type)
        return s
    }

    // 法人类型，1 人 2 公司
    fun parseType(type: Int?): String? {
        val map = HashMap<Int?, String?>()
        map[1] = "人"
        map[2] = "公司"

        val s = map.get(type)
        return s
    }

    val typeName: String?
        get() = parseType(type)


    val companyTypeName: String?
        get() = parseCompanyType(companyType)

    fun parseCompanyType(companyType: Int?): String? {
        val map = HashMap<Int?, String?>()
        map[1] = "公司"
        map[2] = "香港公司"
        map[3] = "社会组织"
        map[4] = "律所"
        map[5] = "事业单位"
        map[6] = "基金会"

        val s = map.get(companyType)
        return s
    }

}
